iT邦幫忙

2022 iThome 鐵人賽

DAY 13
0
AI & Data

Object Detection and Image Processing with Python系列 第 13

《第13天》Scaled YOLOv4解析(二)

  • 分享至 

  • xImage
  •  

內容

  1. 導論

    1.1 物件偵測應用情境:針對不同的運算設備,分別設計多個的模型。

    • 通用GPU
    • Low-End GPU(嵌入式運算)或CPU
    • Hight-End GPU(雲端運算、IOT cluster)

    1.2 目的:本文認為物件實時偵測應用在不同情境,需要的不是設計多個模型;而是單一模型藉由模型縮放技術,衍生出一套可以部署在不同設備的物件檢測器。

    1.3 Paper Servey

    • 相關文獻

    • CSPDarknet53:YOLOv4之Bckbone,其深度為65、瓶頸比例為1、跨階寬度增加率為2,貼近上述最佳模型特徵,故本文以其進行模型縮放Baseline。

    1.4 實時物件偵測

    • one-stage演算法:

      • 僅需要一階段CNN操作,就可以獲得模型預測輸出。

      • 推論時間固定

    • two-stage演算法:

      • 從第一階段CNN中獲得高分區域提案,再將該提案輸入第二階段CNN,獲得模型預測輸出。

      • 推論時間受到「高分區域提案」數量(m)影響,不是固定的。

    • 小結:為了符合實時偵測,故選用推論時間固定的one-stage演算法。此外,目前最準確的one-stage物件偵測為anchor-based,故本文以YOLOv4進行模型縮放。

  2. 模型縮放

    3.1 傳統模型縮放方法

    • Depth:增加更多卷積層。(如:ResNet-50、ResNet-101)
    • Width:增加卷積層中內核的數量(如:wide ResNet)
    • Resolution:藉由圖像金字塔(image pyramid),模型可輸入不同解析度的圖像,最終整合多組輸出作為結果。故可藉由更高的圖片解析度,獲得更高模型準確度。

    3.2 Scaled YOLOv4縮放原則

    • 一般縮放(CSP-ized YOLOv4)

      • 選擇ResNet、ResNext和Darknet,分析不同模型縮放方式的FLOPs。

      • 觀察圖像大小α、Depth層數β與Width通道數γ等縮放因子,變化時導致的FLOPs量變化。

      • 圖像大小α、Depth層數β與Width通道數γ等縮放因子,呈現平方、線性與平方關係。(原文Table1中,Width與Depth位置應對調,如下圖)

      • 將CSPNet應用於ResNet、ResNeXt與Darknet模型,均降低了FLOPs量,故本文選擇CSP-ized作為縮放的最佳模型。

    • Low-End縮放(YOLOv4-tiny)

      • 推論速度除了受到FLOPs量、模型大小影響,還有Low-End Device的硬體限制。包括:記憶體頻寬、記憶體訪問成本、動態存取記憶體流量。

      • 使計算複雜度小於O(whkb²):

        • 輕量化模型著重在參數利用的有效性,故選擇DenseNet與OSANet比較計算複雜度。

        • 前者為O(whgbk)、後者為O(max(whbg, whg²k)),且k << g < b,計算複雜度OSANet≤DenseNet,故採用之。

        • OSA模塊:為了解決DenseNet記憶體訪問成本過高的問題而生。

      • 最小化/平衡特徵圖尺寸

        • 考量記憶體頻寬最佳化,實驗比對OSANet、CSPOSANet與CSPOSANet wtih PCB(梯度截斷)。
        • CSPOSANet wtih PCB,將CSPNet置於OSANet的計算模塊中,進行梯度截斷(gradient truncation),可動態調整通道分配,達成計算速度與準確度的最佳平衡。

      • 在卷積後維持相同數量的通道

        • 評估Low-End Device計算成本需考慮設備功耗,其受記憶體訪問成本(MAC)影響。

        • 不等式運算發現:當卷積計算的輸入與輸出通道數相同,可以得到MAC最小值。

      • 卷積運算暫存(CIO)最小化

        • CIO:衡量記憶體輸入與輸出暫存區狀態的指標。
        • 比較OSANet、CSPOSANet與CSPOSANet wtih PCB,當kg > b/2時,CSPOSANet獲得最佳CIO(CIO值最小)。

    • Hight-End縮放(YOLOv4-large)

      • 物件偵測模型可調整縮放因子與位置,包括:Input、Backbone與Neck,如下圖。

      • one-stage物件偵測需要預測圖像中物件位置與大小,物件大小的預測能力,受到像量特徵的感受域影響。而FPN架構顯示感受域與stage息息相關,

      • 本文最終採用的縮放策略:「先縮放 {input size, #stage} ,再根據實時偵測應用情境,進一步縮放 {width,depth} 」。

  3. Scaled YOLOv4架構

    4.1 CSP-ized YOLOv4(YOLOv4-scp)

    • Backbone

      • YOLOv4:CSPDarknet53比Darknet有更佳的計算優勢,但須滿足特定條件。
      • YOLOv4-scp(CSPDarknet53改):為了推論速度與準確度的最佳平衡,本文將第一個CSP階段轉換成原始的Darknet殘差層。

      圖片來自於YOLO演進 — 4 — Scaled-YOLOv4。

    • Neck

      • CSPPANet:PANet引入short-circuit概念。融入CSPNet架構後,減少了40%的運算量。
      • SPP module:將圖像特徵轉化成相同大小的特徵向量,消除圖像輸入尺寸的限制。通常放在Neck的第一個計算列表組中間,故本文將其置於CSPPANet中相同位置。

    4.2 YOLOv4-tiny

    圖片來自於Windows版YOLOv4-tiny目标检测实战:训练自己的数据集

    4.3 YOLOv4-large

    • 全CSP-ized化模型:為了雲端GPU設計高準確度的YOLOv4-P5。
    • YOLOv4-P5模型縮放
      • 使用{input size, #stage}複合縮放,並調整stage的depth尺度。
      • 依據實時偵測FPS效能,調整width縮放因子,將其擴展成YOLOv4-P6、YOLOv4-p7。
  4. 實驗比對

    5.1 Ablation study

    • CSP-ized YOLOv4

      • Backbone+Neck組合
        • D53+FPNSPP
        • D53+PANSPP
        • CD53s+CFPNSPP
        • CD53s+CPANSPP
      • 激活函數:Leaky、Mish。
      • 最終選擇AP最高的CD53s + CPANSPP + Mish。
    • YOLOv4-tiny

      • 相同計算量時,COSA架構推論速度快。
      • 選擇準確度與推論速度最平衡的COSA-2x2x作為yolov4-tiny架構。
    • YOLOv4-large:比較模型從頭訓練與微調後的準確度。先從頭訓練300回合,再微調150回合,獲得較高的準確度。

    5.2 與其他先進的物件偵測模型比對

    • CSP-ized YOLOv4:與準確度相近的EfficientDet-D3比較,CSP-ized YOLOv4推論速度為兩倍。

    • YOLOv4-large:與準確度相近的EfficientDet比較,YOLOv4-large推論速度顯著較佳。

    (對照圖修改自本文中Table11)

    • YOLOv4-tiny

      • YOLOv4-tiny:優於YOLOv3-tiny。
      • YOLOv4-tiny-3l:優於Thunder146與CSPPeleeRef。


小結

  1. 下一站,我們前往「YOLOR解析(一)」。

讓我們繼續看下去...


參考資料

  1. Scaled-YOLOv4: Scaling Cross Stage Partial Network 论文翻译
  2. YOLO演進 — 4 — Scaled-YOLOv4
  3. Scaled-YOLOv4:CSP网络的缩放

上一篇
《第12天》Scaled YOLOv4解析(一)
下一篇
《第14天》YOLOR解析(一)
系列文
Object Detection and Image Processing with Python30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言